package com.geovis.emergency.spd.biz.pc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.geovis.emergency.spd.entity.mobile.pojo.vo.DrillPlanTaskMobileDetailVO;
import com.geovis.emergency.spd.entity.mobile.pojo.vo.DrillPlanTaskMobileFeedbackVO;
import com.geovis.emergency.spd.entity.pc.entity.PcDrillPlanDetail;
import com.geovis.emergency.spd.entity.pc.entity.PcDrillPlanTask;
import com.geovis.emergency.spd.entity.pc.pojo.dto.PcDrillPlanTaskApprovalDTO;
import com.geovis.emergency.spd.entity.pc.pojo.vo.DrillPlanTaskVO;
import com.geovis.emergency.spd.entity.pc.pojo.vo.TaskTimeStatisticsVO;

import java.util.List;

/**
 * <p>
 * 应急预案指挥模块-演练工作方案任务表 服务类
 * </p>
 *
 * @author Lonsho
 * @since 2022-06-08
 */
public interface IPcDrillPlanTaskService extends IService<PcDrillPlanTask> {

    /**
     * 获取任务详情，封装成移动端VO
     * @param taskId 任务id
     * @return
     */
    DrillPlanTaskMobileDetailVO detail(String taskId);

    /**
     * 反馈任务执行结果
     * @param vo
     */
    PcDrillPlanDetail feedback(DrillPlanTaskMobileFeedbackVO vo, String userId);

    DrillPlanTaskVO getTaskFeedback(String planId);

    void approve(PcDrillPlanTaskApprovalDTO approvalDTO);

    /**
     * 任务用时统计
     * @param drillId
     * @param pcDrillDisasterId
     * @return
     */
    List<TaskTimeStatisticsVO> selectTimeStatistics(String drillId, String pcDrillDisasterId);

}
